﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ProduceBasicData.Domain.Entities;

namespace ProduceBasicData.Domain.Weather
{
    /// <summary>
    /// 天气预警实体（映射数据库表：WeatherAlerts）
    /// </summary>
    public class WeatherAlert:BaseEntity
    {
        /// <summary>
        /// 天气类型（如：暴雨、高温、台风、暴雪）
        /// </summary>
        public string WeatherType { get; set; } = string.Empty;

        /// <summary>
        /// 预警等级（蓝色=1、黄色=2、橙色=3、红色=4）
        /// </summary>
        public AlertLevel AlertLevel { get; set; }

        /// <summary>
        /// 影响范围（如：户外作业、物流运输、设备运行、人员安全）
        /// </summary>
        public string AffectRange { get; set; } = string.Empty;

        /// <summary>
        /// 建议措施（如：暂停户外作业、启动备用设备）
        /// </summary>
        public string Suggestion { get; set; } = string.Empty;

        /// <summary>
        /// 预警生成时间
        /// </summary>
        public DateTime GenerateTime { get; set; } = DateTime.Now;

        /// <summary>
        /// 处理状态（待处理=1、已处理=2、已忽略=3）
        /// </summary>
        public AlertProcessStatus ProcessStatus { get; set; } = AlertProcessStatus.Pending;

        /// <summary>
        /// 关联生产流程（如：原材料运输、装配线作业）
        /// </summary>
        public string? RelevantProcess { get; set; }

        /// <summary>
        /// 备注（如：自动生成/手动触发）
        /// </summary>
        public string? Remark { get; set; }

    }
    /// <summary>
    /// 预警等级枚举
    /// </summary>
    public enum AlertLevel
    {
        Blue = 1,    // 蓝色预警
        Yellow = 2,  // 黄色预警
        Orange = 3,  // 橙色预警
        Red = 4      // 红色预警
    }

    /// <summary>
    /// 预警处理状态枚举
    /// </summary>
    public enum AlertProcessStatus
    {
        Pending = 1,   // 待处理
        Processed = 2, // 已处理
        Ignored = 3    // 已忽略
    }
}
